/*
 * @Description: socket结构的RAW类型的数据结构和函数定义的头文件
 * @Author: Liverpool
 * @Date: 2024-09-24 01:17:48
 * @LastEditTime: 2024-09-24 01:20:18
 * @LastEditors: Liverpool
 */

#ifndef RAW_H
#define RAW_H

#include "sock.h"
#include "packet.h"
#include "list.h"

// RAW结构的数据结构
typedef struct _raw_t
{
    D_Sock base;           // sock结构的基础部分
    D_List recv_list;      // 数据接收队列
    D_Sock_Wait recv_wait; // 接收等待结构体
} D_Raw;

net_err_t raw_init(void);                     // raw模块的初始化
D_Sock *raw_create(int family, int protocol); // raw socket结构的创建
net_err_t raw_in(D_Packet *pkt);              // raw的输入处理函数
#endif